﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace In_Game
{
    class Tiro
    {
        // Imagem do tiro
        public Texture2D textura;

        // Posicao do tiro
        public Vector2 posicao;

        // Estadao do tiro
        public bool ativo;

        // dano causado pelo tiro
        public int dano;

        Viewport viewport;

        public float rotacao;

        public int Width
        {
            get { return textura.Width; }
        }

        public int Height
        {
            get { return textura.Height; }
        }

        // velocidade do tiro
        public float velocidadeX;
        public float velocidadeY;

        public Rectangle retanguloTiro;


        public Tiro(Viewport viewport, Texture2D textura, Vector2 position, float projectileMoveSpeedX, float projectileMoveSpeedY, float rotation)
        {
            this.textura = textura;
            this.posicao = position;
            this.viewport = viewport;
            this.rotacao = rotation;

            ativo = true;

            dano = 2;

            this.velocidadeX = projectileMoveSpeedX;
            this.velocidadeY = projectileMoveSpeedY;
        }

        public void Update()
        {
            posicao.X += velocidadeX;
            posicao.Y += velocidadeY;

            retanguloTiro = new Rectangle((int)posicao.X - 5, (int)posicao.Y - 7, 12, 14);

            // desativa o projetil se estiver fora da tela
            if (posicao.X - textura.Width > viewport.Width)
            { ativo = false; }

            if (posicao.X < 0)
            { ativo = false; }

            if (posicao.Y + textura.Width > viewport.Height)
            { ativo = false; }

            if (posicao.Y < 0)
            { ativo = false; }
        }

        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(textura, posicao, null, Color.White, rotacao,
            new Vector2(Width / 2, Height / 2), 1f, SpriteEffects.None, 0f);
        }
    }
}
